package com.letoken.platform.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.letoken.platform.pub.req.PageData;
import com.letoken.platform.repo.admin.po.AdminMenu;
import com.letoken.platform.repo.admin.req.menu.*;
import com.letoken.platform.repo.admin.res.menu.*;
import com.letoken.platform.repo.admin.res.system.QueryAdminMenuTreeRes;

import java.util.List;

/**
 * @author wyl
 * @Description 菜单Service
 * @date 2022/12/14 11:58
 * @Version 1.0
 */
public interface AdminMenuService extends IService<AdminMenu> {
    PageData<QueryAdminMenuRes> queryAdminMenuList(QueryAdminMenuReq req);

    void addAdminMenu(AddAdminMenuReq req);

    void updateAdminMenu(UpdateAdminMenuReq req);

    void deleteAdminMenu(Integer adminMenuId);

    QueryAdminMenuByIdRes queryAdminMenuById(Integer adminMenuId);


    PageData<QueryResourcesRes> queryResourcesList(QueryResourcesReq req);

    QueryResourcesByIdRes queryResourcesById(Integer adminMenuId);

    void addResources(AddResourcesReq req);

    void updateResources(UpdateResourcesReq req);

    void deleteResourcesById(Integer adminMenuId);

    List<QueryOneLevelRes> queryOneLevelList();

    List<QueryAdminMenuTreeRes> queryPermissionById(Integer adminRoleId);

    void updatePermission(UpdatePermissionReq req);

    Integer getMenuIdByUri(GetMenuIdByUriReq req);

    List<QueryAdminMenuTreeRes> queryByToken();

    List<QueryAdminMenuTreeRes> getPermissionById(Integer adminRoleId);

    List<QueryAdminMenuTreeRes> getPermissionList();

    List<QueryAdminMenuTreeRes> getMePermission();

    void modifyPermission(UpdatePermissionReq req);

    List<QueryOneLevelRes> queryTwoLevelList(Integer pId);

    PageData<QueryPageRes> queryPageList(QueryPageReq req);

    QueryPageByIdRes queryPageById(Integer adminMenuId);

    void addPage(AddPageReq req);

    void updatePage(UpdatePageReq req);

    void deletePageById(Integer adminMenuId);

    void allPermission();

    List<QueryAdminMenuTreeRes> getMenuList();
}
